

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="" method="post" enctype="multipart/form-data">
    <input type="file" name='image'>
    <input type="submit" value="上传" name='sub'>
    </form>
</body>
</html>

<?php
// $image=['.png','.jpg','.gif'];

// if(!empty($_POST)){
//    $name= $_FILES['image']['name'];
//    $key=strrchr($name,'.');
//    if(in_array($key,$image)){
//        if($_FILES['image']['error']==0){
//            $path=uniqid('user').rand(100,500).$_FILES['image']['name'];
//            move_uploaded_file($_FILES['image']['tmp_name'],'./upload/'.$path);
//            echo "上传成功";
//        }else{
//            echo "上传不成功";
//        }
//    }else{
//     echo "文件格式错误";
//    }
// }

//通过$_FIELS[]['type']类型
// $allow =array('image/jpeg','image/png','image/gif');
// if(!empty($_POST)){
//     $name= $_FIELS['image']['type'];
//     if(in_array($name,$allow)){
//         if($_FIELS['image']['error']==0){
//             $path=uniqid('user').rand(100,500).$_FIELS['image']['name'];
//             move_uploaded_file($_FIELS)
//         }
//     }
// }

// 方法3；php_fileinfo扩展（可以防止文件伪装）
// 创建一个 fileinfo 资源
$allow=array('image/jpeg','image/png','image/gif');
// 创建一个fileinfo 资源
$info=finfo_open(FILEINFO_MIME_TYPE);
// 将finfo资源和文件做比较
$min= finfo_file($info,$_FIELS['image']['tmp_name']);//获取文件信息;
//比较是否一样
if(in_array($min,$allow)){
    if($_FIELS['image']['error']==0){
        $path=uniqid('user').rand(100,500).$_FIELS['image']['name'];
           echo "上传成功";
        }else{
            echo "上传不成功";
       }
    }else{
    echo "文件格式错误";
   }

?>